_Pragma("once")

#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
    #define T_WIN32
#elif defined(linux) || defined(__linux) || defined(__linux__)
    #define T_LINUX
#endif

#if defined(T_WIN32)
   #ifdef T_API_STATIC
      #ifdef __cplusplus
         #define T_API extern "C"
      #else
         #define T_API
      #endif
   #else
      #ifdef T_API_EXPORTS
         #ifdef __cplusplus
            #define T_API extern "C" __declspec(dllexport)
         #else
            #define T_API __declspec(dllexport)
         #endif
      #else
         #ifdef __cplusplus
            #define T_API extern "C" __declspec(dllimport)
         #else
            #define T_API __declspec(dllimport)
         #endif
      #endif
   #endif
#elif defined(T_LINUX)

    #ifdef __cplusplus
       #define T_API extern "C"
    #else
       #define T_API
    #endif
#endif
